package it.polimi.traveldream.persistence.dtos;

import java.util.ArrayList;
import java.util.List;

public class PacchettoPersonalizzatoDTO {
	
	private int IDPacchetto;
	
	private int prenotazione;
	
	private PacchettoDTO pacchettoOriginale;
	
	private int IDPacchettoOriginale;
	
	//private String emailUtente;
	
	private List<PrenotazioneHotelDTO> hotels;
	
	private List<PrenotazioneTourDTO> tours;
	
	private List<PrenotazioneVoloDTO> voli;
	
	private List<PrenotazioneHotelDTO> hotelsInGL;
	
	private List<PrenotazioneTourDTO> toursInGL;
	
	private List<PrenotazioneVoloDTO> voliInGL;
	
	public PacchettoPersonalizzatoDTO(){
		this.hotels= new ArrayList<PrenotazioneHotelDTO>();
		this.tours= new ArrayList<PrenotazioneTourDTO>();
		this.voli= new ArrayList<PrenotazioneVoloDTO>();
	}
	
	public void setIDPacchetto(int id){
		this.IDPacchetto=id;
	}
	
	public int getIDPacchetto(){
		return IDPacchetto;
	}
	
	public void setPrenotazione(byte pren){
		this.prenotazione=pren;
	}
	
	public int getPrenotazione(){
		return prenotazione;
	}
	
	public void setPrenotazione(int p){
		if(p!=0)p=1;
		this.prenotazione=p;
	}
	
	/*public void setEmailUtente(String email){
		this.emailUtente=email;
	}
	
	public String getEmailUtente(){
		return emailUtente;
	}*/
	
	public void setIDPacchettoOriginale(int paccOriginal){
		this.IDPacchettoOriginale=paccOriginal;
	}
	
	public int getIDPacchettoOriginale(){
		return IDPacchettoOriginale;
	}
	
	public void setHotels(List<PrenotazioneHotelDTO> pren){
		this.hotels=pren;
	}
	
	public List<PrenotazioneHotelDTO> getHotels(){
		return hotels;
	}
	
	public void addPrenotazioneHotel(PrenotazioneHotelDTO hotel){
		hotels.add(hotel);
	}
	
	public void detetePrenotazioneHotel(PrenotazioneHotelDTO hotel){
		for(PrenotazioneHotelDTO pren : hotels){
			if(pren.getIDPrenotazione()==hotel.getIDPrenotazione()){
				hotels.remove(pren);
				break;
			}
		}
	}

	public List<PrenotazioneTourDTO> getTours() {
		return tours;
	}

	public void setTours(List<PrenotazioneTourDTO> tours) {
		this.tours = tours;
	}
	
	public void addPrenotazioneTour(PrenotazioneTourDTO tour){
		tours.add(tour);
	}
	
	public void detetePrenotazioneTour(PrenotazioneTourDTO tour){
		for(PrenotazioneTourDTO pren : tours){
			if(pren.getIDPrenotazione()==tour.getIDPrenotazione()){
				tours.remove(pren);
				break;
			}
		}
	}

	//Voli
	public List<PrenotazioneVoloDTO> getVoli() {
		return voli;
	}

	public void setVoli(List<PrenotazioneVoloDTO> voli) {
		this.voli = voli;
	}
	
	public void addPrenotazioneVolo(PrenotazioneVoloDTO volo){
		voli.add(volo);
	}
	
	public void detetePrenotazioneVolo(PrenotazioneVoloDTO volo){
		for(PrenotazioneVoloDTO pren : voli){
			if(pren.getIdPrenotazione()==volo.getIdPrenotazione()){
				voli.remove(pren);
				break;
			}
		}
	}

	public PacchettoDTO getPacchettoOriginale() {
		return pacchettoOriginale;
	}

	public void setPacchettoOriginale(PacchettoDTO pacchettoOriginale) {
		this.pacchettoOriginale = pacchettoOriginale;
	}

	public int getNumeroVoli(){
		if(voli!=null){
			return voli.size();
		}
		else{
			return 0;
		}
	}
	
	public int getNumeroHotel(){
		if(hotels!=null){
			return hotels.size();
		}
		else{
			return 0;
		}
	}
	
	public int getNumeroTour(){
		if(tours!=null){
			return tours.size();
		}
		else{
			return 0;
		}
	}
	
	public int getNumeroPersone(){
		if(hotels!=null){
			return hotels.get(0).getNumeroPersone();
		}
		else{
			return 20000;
		}
	}

	public List<PrenotazioneHotelDTO> getHotelsInGL() {
		return hotelsInGL;
	}

	public void setHotelsInGL(List<PrenotazioneHotelDTO> hotelsInGL) {
		this.hotelsInGL = hotelsInGL;
	}

	public List<PrenotazioneTourDTO> getToursInGL() {
		return toursInGL;
	}

	public void setToursInGL(List<PrenotazioneTourDTO> toursInGL) {
		this.toursInGL = toursInGL;
	}

	public List<PrenotazioneVoloDTO> getVoliInGL() {
		return voliInGL;
	}

	public void setVoliInGL(List<PrenotazioneVoloDTO> voliInGL) {
		this.voliInGL = voliInGL;
	}
	
	
}
